{
MetaWindow *window = iter->data;
- if (!meta_window_showing_on_its_workspace (window))
- return FALSE;
+ if (meta_window_showing_on_its_workspace (window))
+ return TRUE;
}
- return TRUE;
+ return FALSE;
}
gboolean
_shell_app_remove_window (app, window);
}
+static void
+shell_app_on_user_time_changed (MetaWindow *window,
+ GParamSpec *pspec,
+ ShellApp *app)
+{
+ /* Ideally we don't want to emit windows-changed if the sort order
+ * isn't actually changing. This check catches most of those.
+ */
+ if (window != app->windows->data)
+ {
+ app->window_sort_stale = TRUE;
+ g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
+ }
+}
+
static void
shell_app_on_ws_switch (MetaScreen *screen,
int from,
app->windows = g_slist_prepend (app->windows, g_object_ref (window));
g_signal_connect (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app);
+ g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
app->window_sort_stale = TRUE;
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);